1. Field of the Invention
This invention relates generally to embedded controller software authentication, and more particularly to systems and methods for authentication of embedded RAID on a motherboard.
2. Description of the Related Art
The use of personal computers has expanded remarkably in recent years. Modern personal computers are generally characterized by a flexible hardware architecture and a relatively open software architecture. The use of standardized hardware interfaces has permitted users to customize their personal computers to meet their particular hardware and software needs with greater ease than previously available. In consequence, a variety of input and output devices are available for most popular personal computers.
The open hardware interfaces increase the flexibility of the hardware since developers can more easily create programs using a common interface. For example, open hardware interfaces are often utilized for device controllers, which are used to access and control the various peripheral devices connected to a computer system. These controllers serve to coordinate and manage the data communication to and from the peripheral devices. Exemplary controllers include integrated drive electronics (IDE) controllers, small computer system interface (SCSI) controllers, and other similar chips that control peripheral devices.
Generally, controllers include a computer chip known as an application-specific integrated circuit (ASIC). ASICs are usually created for a specific purpose or application such as controlling SCSI devices, RAID arrays, or other similar devices. ASICs that manage SCSI devices are commonly known as SCSI chips. A SCSI controller generally includes a SCSI chip. By use of software device drivers, a host computer can instruct a SCSI chip to manage specific peripheral devices and control the data transfer between the peripheral device and the host computer.
FIG. 1 is a block diagram showing a motherboard having a built in SCSI controller for managing peripheral devices. The motherboard includes a host central processing unit (CPU), and a SCSI controller 102 in communication with a SCSI peripheral device 108, which in this example is a redundant array of independent disks (RAID). In addition, a memory device 106, such as an electronically erasable programmable read only memory (EEPROM) can be placed in communication with the SCSI controller 102.
In operation, the SCSI controller 102 manages the read and write operations to the RAID storage array 108. In addition, the SCSI controller 102 can obtain configuration information from the memory device 106. As mentioned above, the SCSI controller 102 uses a standardized open hardware interface that allows developers to create programs using a common interface, thus increasing the ease with which software is developed for the SCSI controller 102. Furthermore, the open interface architecture allows controller software to execute on a plurality of different controllers, manufactured by a plurality of different manufactures.
Unfortunately, the open interface architecture of the SCSI controller 102 also facilitates software piracy for software created for use with the controller 102. Moreover, although a SCSI controller is illustrated in FIG. 1, it should be noted that the potential for software piracy exist for all controllers having an open interface architecture. For example, since controller software can execute on a plurality of different controllers using the standardized interface, a motherboard manufacturer can copy software developed for controllers on other motherboards, and use the software on their motherboards. Thus, the pirating motherboard manufacturer avoids the cost and labor of developing the controller software, while the actual controller software developer is uncompensated. Even when the EEPROM 106 is utilized to store particular configuration information, the pirating manufacturer can copy the contents of original EEPROM 106 onto their EEPROM, thus making their EEPROM function as though it was the original EEPROM 106.
In view of the foregoing, there is a need for systems and methods for authenticating embedded devices on motherboards to ensure software is being executed on an appropriate device. In addition, the methods should preserve the industry open interface architecture.